---@class GT.ui.control.image : GT.ui
---@field u table<RoleID,GT.ui.control.image> 玩家独立数据驱动
---@field binding GT.ui.control.image
GT.ui.control.image = class(GT.ui, false)


---@class ui_data_image : ui_data
---@field img Int32 图片
ui_data_image = {
    img = nil,
}

--- 创建图标
---@param data ui_data_image
---@return GT.ui.control.image
function GT.ui.control.image:ctor(data)
    data.class=GT.ui.control.image
    if data.uid ~= nil then
        super(self, data)
    else
        data.u_type = GT.ui.type.image
        self.img = data.img
        --创建控件
        super(self, data)
        --设置图片
        if self.img then
            self:set_image(self.img)
        end
        
    end
    self:image_watch()
    return self
end

---转对象
---@param data ui_data_image
---@return GT.ui.control.image
function GT.ui.control.image.obj(data)
    return new(GT.ui.control.image, data)
end



--监听绑定
---@return GT.ui.control.image
function GT.ui.control.image:image_watch()
    ---@type bind_data[]
    local data = {
        {
            key = "img",
            func = function(val, old)
                self.img = val
                self:set_image(self.img)
            end
        }
    }
    self.bind:add(data)
end

--- 设置ui组件图片
---@param image_id Int32 图片id
---@return GT.ui.control.image
function GT.ui.control.image:set_image(image_id)
    game_api.set_ui_comp_image(self.player.player , self.uid, image_id)
    return self
end
